# 步骤：
# 0. 导包
import logging
import logging.handlers
import app

filename = app.BASE_DIR + "/log/a.log"
def init_log_config(filename = filename, when='midnight',interval=1, backupCount=7):
    # 1. 创建日志器对象
    logger = logging.getLogger()
    # 2. 设置日志打印级别
    # logging.DEBUG 调试级别
    # logging.INFO 信息级别
    # logging.WARNING 警告级别
    # logging.ERROR 错误级别
    # logging.CRITICAL 严重错误级别
    logger.setLevel(logging.DEBUG)

    # 3. 创建处理器对象
    # 创建 输出到控制台 处理器对象
    st = logging.StreamHandler()
    # 创建 输出到日志文件 处理器对象
    fh = logging.handlers.TimedRotatingFileHandler(filename=filename,
        when=when, interval=interval, backupCount=backupCount, encoding="utf-8")
    # filename: 日志文件路径
    # when： 字符串，指定日志切分间隔时间的单位。midnight：凌晨：12点。
    # interval： 是间隔时间单位的个数，指等待多少个 when 后继续进行日志记录
    # backupCount： 是保留日志文件的个数

    # 4. 创建日志信息格式
    fmt = logging.Formatter(
        fmt="%(asctime)s %(levelname)s [%(filename)s(%(funcName)s:%(lineno)d)] : %(message)s",
        datefmt="%Y-%m-%d %H:%M:%S"
    )

    # 5. 将日志信息格式设置给处理器
    # 设置给 控制台处理器
    st.setFormatter(fmt)
    # 设置给 日志文件处理器
    fh.setFormatter(fmt)

    # 6. 给日志器添加处理器
    # 给日志对象 添加 控制台处理器
    logger.addHandler(st)
    # 给日志对象 添加 日志文件处理器
    logger.addHandler(fh)


# 7. 打印日志
if __name__ == '__main__':

    init_log_config() #初始化使用
    logging.info("==========")
